nonlinear first order differential equation solver